perm filename DRWF.F4[MAN,LCS] blob
sn#104325 filedate 1974-05-25 generic text, type T, neo UTF8
00100 C TYPE 'DO DOD.DO'.
00110 C 'G' OR <CR> = GET. 'A'=ADD TO COMBINED FILE.
00200 C PC=PLOT PX=XGP(→PLOT.BIN) PXS,PCS=PLOT SMOOTHED CONTURE
00300 C PXZ,PCZ=PLOT SMOOTHED CONTURE AND FILL IT.
00400 C IN DRAW SECTION: J=JUMP(INVIS. VECT.)
00500 C F=JUMP AND BEGIN FILL SECTION. FX=EXIT AND FILL ALL.
00600 C SINGLE ITEM IS RESTRICTED TO 400 WDS. 10 ITEMS PER FILE.
00700 COMMON /RC/MCLEF(400),IST(4000)
00800 COMMON /FL/IC,N,NQ,RZ,IXRX,XGP,RXGP
00900 COMMON/ZN/SCLEF(400,2),DDD
01000 COMMON/ED/KED,NEXT,NN,NX,NY,J
01100 COMMON XX(100),G(100),NJ,QF(512),RF(512),S(100),K
01200 COMMON/LL/LL
01300 DIMENSION JCLEF(10)
01400 COMMON/NFF/NF(513)
01500 EQUIVALENCE (MM,SCLEF(1,1)),(JCLEF,IST),(NM,IXRX)
01510 1 ,(GRID,IST(4000))
01600 COMMON /RZ/RSZ,IPLT,RJB,CENTR
01700 DATA RJB/-20./,CENTR/-26./
01710 RSZ=0
01800 1 MCLEF(1)=0
02000 MM=0
02100 IPLT=0
02200 IPLTX=-1
02300 K=1
02500 91 TYPE 100
02600 55 FORMAT(I,2F)
02700 50 FORMAT(3A1)
02900 XSZ=RSZ
03000 ACCEPT 55,J,RSZ,GRID
03200 IF(RSZ.EQ.0)RSZ=XSZ
03300 MORE=-1
03400 REREAD 50,N,JC,JS
03500 C PXS,PCS=SMOOTH ONLY; PXZ,PCZ=SMOOTH AND FILL
03600 C TO SAVE SIZE FACTOR WHEN REDRAWING.
03610 IF(N.EQ.'Z')GO TO 1
03700 IF(RSZ.EQ.0)RSZ=9.0
03710 IF(GRID.NE.0.AND.N.NE.'P')CALL GRIDS
03800 IF(N.EQ.'M'.OR.N.EQ.'R')GO TO 192
03900 C FOR ROTATION OR MOVING AND DISTORTING ENTIRE PICTURE
03910 IF(N.EQ.'F')GO TO 79
03930 C FILLS IT.
03950 IF(JS.EQ.'L')N='Z'
03975 C DEL=DELETE FROM COMB. FILE. (JS='L')
04000 IF(N.EQ.'C'.OR.N.EQ.'A'.OR.N.EQ.'Z')GO TO 999
04100 IF(N.EQ.'X')CALL EXIT
04200 C TYPE X TO FINISH PLOT, OTHERWISE NEW UNIT MAY BE READ IN.
04300 IF(N.EQ.'Q')GO TO 56
04350 C 'Q' MAKES CURRENT DPY IN BACKGROUND ON POG2
04400 IF(N.NE.'D'.AND.N.NE.'E')GO TO 191
04410 IF(JC.EQ.'X')MCLEF(1)=0
04420 C TYPE 'DX' TO START NEW DRAWING WITHOUT EXIT. (GOOD AFTER 'Q')
04500
04600 KED=N
04700 MM=MCLEF(1)
04800 IF(MM.NE.0)GO TO 92
04900 C ADD TO DRAWING?
05000 GO TO 3
05010
05020 56 CALL POG2
05030 CALL RDRAW(2,MCLEF(1),MCLEF)
05035 CALL DPYOUT(2)
05040 CALL POG1
05050 GO TO 91
05100 999 CALL CMBN
05200 GO TO 111
05250 192 IF(N.EQ.'R')MCLEF(1)=-MCLEF(1)
05300 CALL SHIFT(MCLEF(2),MCLEF(1))
05400 J=1
05500 JC=0
05600 GO TO 333
05700 191 TYPE 41
05900 IF(JC.EQ.'M'.OR.N.EQ.'S')GO TO 194
06000 MCLEF(1)=0
06100 MM=0
06200 IPLTX=-1
06300 K=1
06400 194 IF(JC.EQ.'M')MORE=0
06500 JQ=JC
06600 JC=0
06700 JM=1
06900 IF(MCLEF(1).EQ.0)GO TO 193
07000 JC=JCLEF(2)-1
07100 JM=MCLEF(1)+1
07200 193 ACCEPT 10,NM,PASS
07210 IF(NM.EQ.' ')NM=LASTNM
07300 IF(NM.EQ.' '.OR.NM.EQ.'99')GO TO 91
07305 C '99' WILL BACKUP
07310 IF(N.NE.'S')LASTNM=NM
07400 REWIND 1
07500 IF(N.EQ.'S')GO TO 40
07600 IF(LOOKD(NM).EQ.0)GO TO 191
07700 C 'FAIL' ROUTINE TO CHECK ON LOOKUP
07800 CALL IFILE(1,NM)
07900 READ(1,5)M,JCLEF
08000 C CAN'T USE 'GM' WITH 'COMBINED' FILE.
08002 CC JQ=0
08005 CC IF(MORE.EQ.0.AND.JCLEF(3).NE.0)JQ=JM-1
08010 J=1
08020 IF(JCLEF(3).EQ.0)GO TO 290
08060 IF(PASS.NE.0)CALL ITEM
08100 TYPE 1100
08200 ACCEPT 55,J
08300 J=J+1
08350 C ITEMS ARE NUMBERED 0 THROUGH 9 (10 ITEMS).
08375 IF(J.GT.10)GO TO 191
08400 290 IC=JCLEF(J+1)-JCLEF(J)
08450 IF(J.EQ.10)IC=1000
08500 TYPE 110,IC
08600 IF(J.LE.1)GO TO 60
08700 C FOR PROTECTION
08800 M=JCLEF(J)+1000
08900 JZ=JM+1001
09000 NX=1001
09100 61 READ(1,5)L,L,(MCLEF(K),K=JZ,JM+L)
09200 C PASSES OVER FIRST ITEMS
09300 NX=NX+L
09400 IF(NX.LT.M)GO TO 61
09500 60 NX=JM
09550 IC=IC+JM
09600 6 READ(1,5,END=7)M,L,(MCLEF(M),M=NX,NX+L-1)
09800 NX=NX+L
09900 IF(NX.LT.IC)GO TO 6
10000 1100 FORMAT(' ITEM NUM?'/)
10100 700 FORMAT(' RESET X-Y POS. ',$)
10200 555 FORMAT(2F)
10300 7 IF(MORE)GO TO 77
10400 DO 771 K=2,JM
10500 771 IF(MCLEF(K).GE.200000000)GO TO 772
10600 GO TO 77
10700 772 M=0
10800 L=NX-1
10900 DO 773 J=K,L+JM-K
11000 M=M+1
11100 MCLEF(L+M)=MCLEF(J)
11200 C PUTS FILLER TO END
11300 773 MCLEF(J)=MCLEF(JM+M)
11400 C MOVES OUTLINE UP FRONT
11700 MCLEF(1)=L-1
11800 GO TO 3
11900 77 IF(JC.EQ.0)GO TO 70
12000 NX=MCLEF(1)+1
12100 NY=MCLEF(NX)-1
12200 C THE WDCNTS
12300 DO 71 K=NX,MCLEF(1)+NY
12400 71 MCLEF(K)=MCLEF(K+1)
12500 MCLEF(1)=MCLEF(1)+NY
12510 JCLEF(2)=MCLEF(1)+1
12600
12700 70 IF(N.NE.'P')GO TO 3
12800 IXRX=-1
12900 IF(JQ.NE.'X')IXRX=0
13000 C 0=SEND IT TO CALCOMP
13100 TYPE 700
13200 ACCEPT 555,X,Y
13300 IF(X.NE.0)RJB=X/RSZ
13400 IF(Y.NE.0)CENTR=Y/RSZ
13500 C TYPE .001, .001 TO SET POS. TO 0, -20, -26 IS ORIGINAL.
13600 IF(IPLTX)CALL PLOTS(0)
13700 C DO I NEED THIS?
13710 IF(GRID.GT.0)CALL GRIDS
13800 IPLTX=0
13900 IPLT=-1
14000 3 IF(N.NE.'D')MM=0
14100 C RESET IF NOT GOING TO DRAWIT
14400 333 IF(N.EQ.'P')GO TO 337
14500 CALL DPYSET(1,IST,4000)
14600 CALL DPYBRT(4)
14700 NIST=IST(2)
14800 IF(N.AND.N.NE.'G'.AND.N.NE.'M'.AND.N.NE.'R')GO TO 92
14900 CC337 JJ=MCLEF(1)
15000 337 IF(JS.EQ.'Z')GO TO 306
15100 IF(JS.NE.'S')GO TO 338
15200 CALL SMOOTH(JS)
15300 GO TO 436
15400 338 IC=-1
15500 MM=1
15600 DO 335 K=2,MCLEF(1)
15700 IF(MCLEF(K).LT.200000000)GO TO 335
15800 CC CALL DPYBRT(3)
15900 CC CALL RDRAW(K,MCLEF(1),MCLEF)
15910 CC CALL DPYOUT(1)
16000 CC CALL DPYBRT(4)
16100 CC JJ=K-1
16200 IC=K
16300 GO TO 334
16400 C FOR 1ST LOC. OF MCLEF IN FILLER
16500 335 CONTINUE
16600 334 CALL RDRAW(2,MCLEF(1),MCLEF)
16700 CALL DPYOUT(1)
16800 NIST=IST(2)
16900 CC IF(JJ.EQ.MCLEF(1))GO TO 436
16950 GO TO 436
17000 C NO FILLER
17010 79 IF(IC)GO TO 91
17020 C IC=-1 IF NO FILLER WAS REQUESTED WHILE DRAWING.
17100 TYPE 336
17200 ACCEPT 10,J
17300 JZ=N
17400 CC IF(J.NE.'Y'.AND.J.NE.'S')GO TO 436
17500 KK=0
17600 IF(J.NE.'Y')GO TO 206
17610 CC IF(J.NE.'S')GO TO 206
17700 306 CALL SMOOTH(0)
17750 C SMOOTHS AND FILLS
17800 GO TO 436
17900 206 RR=RSZ
18100 DO 205 J=IC,MCLEF(1)
18200 CALL UNPACK(J,M,N,MCLEF)
18300 KK=KK+1
18400 NF(KK)=0
18500 IF(LL.GE.100000000)NF(KK)=3
18600 QF(KK)=(M+RJB)*RR
18700 205 RF(KK)=(N+CENTR)*RR
18800 NF(1)=KK
18900 CALL FILLQ(QF,RF,NF)
19000 436 IF(JZ.EQ.'P')CALL PLOT(0,0,3)
19100 GO TO 91
19105
19110 66 TYPE 666,NM
19120 GO TO 91
19130 666 FORMAT(' MORE THAN ONE ITEM IN FILE ',A5/)
19200 336 FORMAT(' SMOOTH? ',$)
19300 10 FORMAT(A5,F)
19400 5 FORMAT(12I)
19500 100 FORMAT(' G=GET, GM=GET MORE, =S=SAVE, D=DRAW, X=EXIT, M=MOVE,'/'
19600 1 P=PLOT, PX=XGP, C=COMBINE, A=ADD TO COMB. FILE
19650 1, DEL=DEL. FROM COMB.'/
19700 1' F=FILL, E=EDIT, N1=SIZE, N2=1=GRID '/)
19800 C N1=20 TO CHANGE SHAPE
19900
20000 92 IST(2)=NIST
20100 CALL DRAWIT
20200 N=0
20300 GO TO 3
20400
20500 403 FORMAT(' WRITE OVER ',A5,'.DAT? ',$)
20600 41 FORMAT(' TYPE FILE NAME'/)
20700 C SAVES ONLY ONE PICTURE - USE 999(COMBINE) FOR UP TO 9
20800 40 IF(LOOKD(NM).EQ.0)GO TO 402
20900 TYPE 403,NM
21000 ACCEPT 50,K
21100 IF(K.EQ.'N')GO TO 191
21200 402 IC=MCLEF(1)+1
21300 CALL OFILE(1,NM)
21400 WRITE(1,120),IC
21500 CALL SAVE(MCLEF)
21510 WRITE(1,1111)NM
21555 1111 FORMAT(' 9999 ',A5)
21600 111 TYPE 110,IC
21610 END FILE(1)
21615 TYPE 1111,NM
21620 GO TO 91
21700 120 FORMAT(' 9999 1 ',I4,' 0 0 0 0 0 0 0 0')
21800 110 FORMAT(' TOTAL WDS=',I3)
21900 END